package com.example.bootasync.service;

import com.example.bootasync.entity.Prod;

import java.time.LocalDateTime;
import java.util.List;

/**
 * @author : JinMing Zhou
 * @description:
 * @date : 2023/6/2 9:49
 */
public interface SeckillService {

    /**
     * 开启秒杀
     * @param startTime 秒杀开始时间
     * @param endTime 秒杀结束时间
     * @param prodIds 开启的商品id
     */
    void openSeckill(LocalDateTime startTime, LocalDateTime endTime, List<Long> prodIds);

    /**
     * 获取秒杀商品详情
     * @return 商品集合
     */
    List<Prod> listSeckillProds();

    /**
     * 去redis中获取商品详情
     * @param prodId 商品id
     * @return 商品详情
     */
    Prod getProdInfo(String prodId);

    /**
     * 购买商品
     * @param userId 用户id
     * @param prodId 商品id
     * @return 是否成功
     */
    Boolean buyProd(Long userId, Long prodId);

}
